<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts: display/ili9341.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">ESP8266ILI9341DisplayProject</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_e4fd3481c5e8112931e161ebbc5af0ff.html">display</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">ili9341.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>ili9341 driver inspired by Adafruit ili9341 code All code in this file has been rewritten by Mike Gore  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="user__config_8h_source.html">user_config.h</a>&quot;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stdarg.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;math.h&gt;</code><br />
<code>#include &quot;<a class="el" href="display_2font_8h_source.html">display/font.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="ili9341_8h_source.html">display/ili9341.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="ili9341__adafruit_8h_source.html">3rd_party/ili9341_adafruit.h</a>&quot;</code><br />
</div>
<p><a href="ili9341_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a71d0761bc813dbcb85353d2508693493"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a71d0761bc813dbcb85353d2508693493">XYSTACK</a>&#160;&#160;&#160;64</td></tr>
<tr class="memdesc:a71d0761bc813dbcb85353d2508693493"><td class="mdescLeft">&#160;</td><td class="mdescRight">X,Y point stack.  <a href="#a71d0761bc813dbcb85353d2508693493">More...</a><br /></td></tr>
<tr class="separator:a71d0761bc813dbcb85353d2508693493"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8936d2dc66f704b60c78e65dc0d7244"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ae8936d2dc66f704b60c78e65dc0d7244">MAXVEC</a>&#160;&#160;&#160;24</td></tr>
<tr class="memdesc:ae8936d2dc66f704b60c78e65dc0d7244"><td class="mdescLeft">&#160;</td><td class="mdescRight">find beginning and end of all non-matching color transitions in a line FIXME: not tested yet  <a href="#ae8936d2dc66f704b60c78e65dc0d7244">More...</a><br /></td></tr>
<tr class="separator:ae8936d2dc66f704b60c78e65dc0d7244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ae7ac40c6ea3d1e5a457adf60a6bf5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a4ae7ac40c6ea3d1e5a457adf60a6bf5b">HSPI_PIX</a>&#160;&#160;&#160;((<a class="el" href="hspi_8h.html#a1eaecab4a7e4f328f38ce57d4d3012d1">HSPI_FIFO_SIZE</a>-2)/3)</td></tr>
<tr class="memdesc:a4ae7ac40c6ea3d1e5a457adf60a6bf5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read Rectangle and return 16bit color array in 565 RGB format We clip the window to the current view Note: TFT Chip Select must be asserted for each block read As soon as chip select goes high the read aborts! We break up the data into chunks with a Memory Read, followed by Memory Read Continue So we use Memory Read and Memory Read Continue.  <a href="#a4ae7ac40c6ea3d1e5a457adf60a6bf5b">More...</a><br /></td></tr>
<tr class="separator:a4ae7ac40c6ea3d1e5a457adf60a6bf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc3999315888a41dcf1417cdae450e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a3bc3999315888a41dcf1417cdae450e3">USE_OPTIMIZATION_DRAWLINE</a></td></tr>
<tr class="separator:a3bc3999315888a41dcf1417cdae450e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a944393583142b4a19593eec1a743b90e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a944393583142b4a19593eec1a743b90e">tft_Cmd</a> (<a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> cmd)</td></tr>
<tr class="memdesc:a944393583142b4a19593eec1a743b90e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit 8 bit command.  <a href="#a944393583142b4a19593eec1a743b90e">More...</a><br /></td></tr>
<tr class="separator:a944393583142b4a19593eec1a743b90e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e9724741987970e9a1a866446bc3a2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a2e9724741987970e9a1a866446bc3a2f">tft_Data</a> (<a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> data)</td></tr>
<tr class="memdesc:a2e9724741987970e9a1a866446bc3a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit 8 bit data amd read 8bit data.  <a href="#a2e9724741987970e9a1a866446bc3a2f">More...</a><br /></td></tr>
<tr class="separator:a2e9724741987970e9a1a866446bc3a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a666fba3ffecff43f44c647bed2d012fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a666fba3ffecff43f44c647bed2d012fe">tft_Cmd_Data_TX</a> (<a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> cmd, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *data, int bytes)</td></tr>
<tr class="memdesc:a666fba3ffecff43f44c647bed2d012fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit 8 bit command and optionally send data buffer.  <a href="#a666fba3ffecff43f44c647bed2d012fe">More...</a><br /></td></tr>
<tr class="separator:a666fba3ffecff43f44c647bed2d012fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8e68425197b38f3c9889b64b24f362"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a4f8e68425197b38f3c9889b64b24f362">tft_abs_window</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h)</td></tr>
<tr class="memdesc:a4f8e68425197b38f3c9889b64b24f362"><td class="mdescLeft">&#160;</td><td class="mdescRight">=============================================================  <a href="#a4f8e68425197b38f3c9889b64b24f362">More...</a><br /></td></tr>
<tr class="separator:a4f8e68425197b38f3c9889b64b24f362"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26f9b4da8c98bb40a55da447874a849c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a26f9b4da8c98bb40a55da447874a849c">tft_rel_window</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h)</td></tr>
<tr class="memdesc:a26f9b4da8c98bb40a55da447874a849c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the ili9341 working window by relative position and size Note: Function clips x,y,w,y.  <a href="#a26f9b4da8c98bb40a55da447874a849c">More...</a><br /></td></tr>
<tr class="separator:a26f9b4da8c98bb40a55da447874a849c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cbe26ff6bbd20f42551fcfa12351142"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a3cbe26ff6bbd20f42551fcfa12351142">tft_readRegister</a> (<a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> command, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> parameter)</td></tr>
<tr class="memdesc:a3cbe26ff6bbd20f42551fcfa12351142"><td class="mdescLeft">&#160;</td><td class="mdescRight">====================================  <a href="#a3cbe26ff6bbd20f42551fcfa12351142">More...</a><br /></td></tr>
<tr class="separator:a3cbe26ff6bbd20f42551fcfa12351142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79545feceb8eca011c3f424b36035010"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a79545feceb8eca011c3f424b36035010">tft_readId</a> (void)</td></tr>
<tr class="memdesc:a79545feceb8eca011c3f424b36035010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read ILI9341 device ID should be 9341 This does not work for really high SPI clock speeds Make sure that when called the clock speed in reduced.  <a href="#a79545feceb8eca011c3f424b36035010">More...</a><br /></td></tr>
<tr class="separator:a79545feceb8eca011c3f424b36035010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aedd26c42606ba58f2f0a483619f323"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a9aedd26c42606ba58f2f0a483619f323">tft_bit_blit</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *ptr, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h)</td></tr>
<tr class="memdesc:a9aedd26c42606ba58f2f0a483619f323"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h1>BLIT functions </h1>
 <a href="#a9aedd26c42606ba58f2f0a483619f323">More...</a><br /></td></tr>
<tr class="separator:a9aedd26c42606ba58f2f0a483619f323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90dda5b7ba495fcca6ab4e5259f6c6fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a90dda5b7ba495fcca6ab4e5259f6c6fe">tft_fillWin</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:a90dda5b7ba495fcca6ab4e5259f6c6fe"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h1>Fill functions </h1>
 <a href="#a90dda5b7ba495fcca6ab4e5259f6c6fe">More...</a><br /></td></tr>
<tr class="separator:a90dda5b7ba495fcca6ab4e5259f6c6fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70194eb517d3ef94b34695e4599168ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a70194eb517d3ef94b34695e4599168ab">tft_flood</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> border, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> fill)</td></tr>
<tr class="memdesc:a70194eb517d3ef94b34695e4599168ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flood fill.  <a href="#a70194eb517d3ef94b34695e4599168ab">More...</a><br /></td></tr>
<tr class="separator:a70194eb517d3ef94b34695e4599168ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeeeab813dc4bbff2e42b292748a69f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#abeeeab813dc4bbff2e42b292748a69f6">tft_push_xy</a> (int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>)</td></tr>
<tr class="memdesc:abeeeab813dc4bbff2e42b292748a69f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">point push  <a href="#abeeeab813dc4bbff2e42b292748a69f6">More...</a><br /></td></tr>
<tr class="separator:abeeeab813dc4bbff2e42b292748a69f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a965b65255c70e4dfcdf3c80365bb1358"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a965b65255c70e4dfcdf3c80365bb1358">tft_pop_xy</a> (int16_t *<a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t *<a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>)</td></tr>
<tr class="memdesc:a965b65255c70e4dfcdf3c80365bb1358"><td class="mdescLeft">&#160;</td><td class="mdescRight">point push  <a href="#a965b65255c70e4dfcdf3c80365bb1358">More...</a><br /></td></tr>
<tr class="separator:a965b65255c70e4dfcdf3c80365bb1358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6223a118e376e361d8278428d1dac4fb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a6223a118e376e361d8278428d1dac4fb">tft_floodline</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> border, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> fill)</td></tr>
<tr class="memdesc:a6223a118e376e361d8278428d1dac4fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flood using line fill method.  <a href="#a6223a118e376e361d8278428d1dac4fb">More...</a><br /></td></tr>
<tr class="separator:a6223a118e376e361d8278428d1dac4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ab93eb7f022a179fed29999a4affd2f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a6ab93eb7f022a179fed29999a4affd2f">tft_FillPolyLine</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int w, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="separator:a6ab93eb7f022a179fed29999a4affd2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c9368b6d6f6388a7c7f9ed89743e47f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a3c9368b6d6f6388a7c7f9ed89743e47f">tft_fillRectWH</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:a3c9368b6d6f6388a7c7f9ed89743e47f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partial window Fill with color We clip the window to the current view.  <a href="#a3c9368b6d6f6388a7c7f9ed89743e47f">More...</a><br /></td></tr>
<tr class="separator:a3c9368b6d6f6388a7c7f9ed89743e47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f75769b08991ac4a56bfb2f4e1fa05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a49f75769b08991ac4a56bfb2f4e1fa05">tft_fillRectXY</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t xl, int16_t yl, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:a49f75769b08991ac4a56bfb2f4e1fa05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill rectangle with color We clip the window to the current view.  <a href="#a49f75769b08991ac4a56bfb2f4e1fa05">More...</a><br /></td></tr>
<tr class="separator:a49f75769b08991ac4a56bfb2f4e1fa05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675036a93108cdafe0b1060ba024c485"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a675036a93108cdafe0b1060ba024c485">tft_drawPixel</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t color)</td></tr>
<tr class="memdesc:a675036a93108cdafe0b1060ba024c485"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h1>Pixel functions </h1>
 <a href="#a675036a93108cdafe0b1060ba024c485">More...</a><br /></td></tr>
<tr class="separator:a675036a93108cdafe0b1060ba024c485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e70141c8de6a4199f9fc39d8cfc758c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a2e70141c8de6a4199f9fc39d8cfc758c">tft_writeRect</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *color)</td></tr>
<tr class="memdesc:a2e70141c8de6a4199f9fc39d8cfc758c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a rectangle pixel array.  <a href="#a2e70141c8de6a4199f9fc39d8cfc758c">More...</a><br /></td></tr>
<tr class="separator:a2e70141c8de6a4199f9fc39d8cfc758c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08bf5b6422229993b5d68e48c7b39619"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a08bf5b6422229993b5d68e48c7b39619">tft_readRect</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *color)</td></tr>
<tr class="separator:a08bf5b6422229993b5d68e48c7b39619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98e0ecaf3fc85ced7c0b7a2a504df02f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a98e0ecaf3fc85ced7c0b7a2a504df02f">tft_Vscroll</a> (<a class="el" href="structwindow.html">window</a> *win, int dir)</td></tr>
<tr class="memdesc:a98e0ecaf3fc85ced7c0b7a2a504df02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scroll window up by dir lines We start at the top of the window and move down.  <a href="#a98e0ecaf3fc85ced7c0b7a2a504df02f">More...</a><br /></td></tr>
<tr class="separator:a98e0ecaf3fc85ced7c0b7a2a504df02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae282613acd29016b23947b0b053170b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ae282613acd29016b23947b0b053170b5">tft_readPixel</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>)</td></tr>
<tr class="memdesc:ae282613acd29016b23947b0b053170b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read one pixel and return color in 1bit 565 RGB format We clip the window to the current view Note: Read Memory must be done in a continious write/read operation Chip select can not be deactivated for the transaction.  <a href="#ae282613acd29016b23947b0b053170b5">More...</a><br /></td></tr>
<tr class="separator:ae282613acd29016b23947b0b053170b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c1271aab64c58f75e6de6471f430bbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a4c1271aab64c58f75e6de6471f430bbe">tft_setRotation</a> (<a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> m)</td></tr>
<tr class="memdesc:a4c1271aab64c58f75e6de6471f430bbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Display rotation, applies to the master window only Set hardware display rotation and memory fill option bits Update software display limits FIXME Work in progress.  <a href="#a4c1271aab64c58f75e6de6471f430bbe">More...</a><br /></td></tr>
<tr class="separator:a4c1271aab64c58f75e6de6471f430bbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecac98906474a88c3017fc3761328506"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#aecac98906474a88c3017fc3761328506">tft_565toRGB</a> (<a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *r, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *g, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *b)</td></tr>
<tr class="memdesc:aecac98906474a88c3017fc3761328506"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h1>Color conversions </h1>
 <a href="#aecac98906474a88c3017fc3761328506">More...</a><br /></td></tr>
<tr class="separator:aecac98906474a88c3017fc3761328506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac276806b0f70c3a69aaefa4a7937643b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ac276806b0f70c3a69aaefa4a7937643b">tft_invertDisplay</a> (int flag)</td></tr>
<tr class="memdesc:ac276806b0f70c3a69aaefa4a7937643b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invert the display.  <a href="#ac276806b0f70c3a69aaefa4a7937643b">More...</a><br /></td></tr>
<tr class="separator:ac276806b0f70c3a69aaefa4a7937643b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af543a94ab615526f81039617a49ac6e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#af543a94ab615526f81039617a49ac6e5">tft_window_clip</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="memdesc:af543a94ab615526f81039617a49ac6e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip window structure to TFT limits.  <a href="#af543a94ab615526f81039617a49ac6e5">More...</a><br /></td></tr>
<tr class="separator:af543a94ab615526f81039617a49ac6e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfcd8a18cff06d92e9d9c5959a66c9dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#adfcd8a18cff06d92e9d9c5959a66c9dd">tft_clip_xy</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t *<a class="el" href="cordic2c_8c.html#a46b4b48ef8c0c01099eb3bcdde8aa8db">X</a>, int16_t *<a class="el" href="cordic2c_8c.html#ab746e677f466f17031e92ed577fc3c15">Y</a>)</td></tr>
<tr class="memdesc:adfcd8a18cff06d92e9d9c5959a66c9dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clip X,Y to fix inside specifiied window.  <a href="#adfcd8a18cff06d92e9d9c5959a66c9dd">More...</a><br /></td></tr>
<tr class="separator:adfcd8a18cff06d92e9d9c5959a66c9dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04d77513a2a6464617b3effa276196ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a04d77513a2a6464617b3effa276196ae">tft_window_clip_args</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t *<a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t *<a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t *w, int16_t *h)</td></tr>
<tr class="memdesc:a04d77513a2a6464617b3effa276196ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">clip arguments to window limits Arguments position x,y width w and height h to be clipped  <a href="#a04d77513a2a6464617b3effa276196ae">More...</a><br /></td></tr>
<tr class="separator:a04d77513a2a6464617b3effa276196ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a31e1132605d6a60b66c4e969b56b37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a5a31e1132605d6a60b66c4e969b56b37">tft_window_init</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, int16_t h)</td></tr>
<tr class="memdesc:a5a31e1132605d6a60b66c4e969b56b37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize window structure we default values FIXME check x+w, y+h absolute limits against TFT limuts.  <a href="#a5a31e1132605d6a60b66c4e969b56b37">More...</a><br /></td></tr>
<tr class="separator:a5a31e1132605d6a60b66c4e969b56b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeedc758e5bf61e7ffb28d4a85de854e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#aeedc758e5bf61e7ffb28d4a85de854e6">tft_setTextColor</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> fg, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> bg)</td></tr>
<tr class="memdesc:aeedc758e5bf61e7ffb28d4a85de854e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">====================================  <a href="#aeedc758e5bf61e7ffb28d4a85de854e6">More...</a><br /></td></tr>
<tr class="separator:aeedc758e5bf61e7ffb28d4a85de854e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf98866e7cbd787fde096143d394699"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#adaf98866e7cbd787fde096143d394699">tft_setpos</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>)</td></tr>
<tr class="memdesc:adaf98866e7cbd787fde096143d394699"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set current window text pointer in pixels (per current rotation)  <a href="#adaf98866e7cbd787fde096143d394699">More...</a><br /></td></tr>
<tr class="separator:adaf98866e7cbd787fde096143d394699"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb6ca3fa55bfe5ecf510bc4b25916fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a2eb6ca3fa55bfe5ecf510bc4b25916fc">tft_set_textpos</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>)</td></tr>
<tr class="memdesc:a2eb6ca3fa55bfe5ecf510bc4b25916fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set current window text pointer in characters (per current rotation) - overall font bounding box.  <a href="#a2eb6ca3fa55bfe5ecf510bc4b25916fc">More...</a><br /></td></tr>
<tr class="separator:a2eb6ca3fa55bfe5ecf510bc4b25916fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa530634bb661856089c9bc7d78f8805f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#aa530634bb661856089c9bc7d78f8805f">tft_set_font</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> index)</td></tr>
<tr class="memdesc:aa530634bb661856089c9bc7d78f8805f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set current font size (per current rotation)  <a href="#aa530634bb661856089c9bc7d78f8805f">More...</a><br /></td></tr>
<tr class="separator:aa530634bb661856089c9bc7d78f8805f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea5f4bb41e9459b03f1a0df02b01b9fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#aea5f4bb41e9459b03f1a0df02b01b9fa">tft_font_fixed</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="separator:aea5f4bb41e9459b03f1a0df02b01b9fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a3d78858315dd032ed3b31099867584"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a6a3d78858315dd032ed3b31099867584">tft_font_var</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="memdesc:a6a3d78858315dd032ed3b31099867584"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set current font type to variable.  <a href="#a6a3d78858315dd032ed3b31099867584">More...</a><br /></td></tr>
<tr class="separator:a6a3d78858315dd032ed3b31099867584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a616f9992d5ed309e96288a7e08b87bf3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a616f9992d5ed309e96288a7e08b87bf3">tft_get_font_height</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="memdesc:a616f9992d5ed309e96288a7e08b87bf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get font height.  <a href="#a616f9992d5ed309e96288a7e08b87bf3">More...</a><br /></td></tr>
<tr class="separator:a616f9992d5ed309e96288a7e08b87bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbf471bb78e19ca798b644121089aeed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#abbf471bb78e19ca798b644121089aeed">tft_drawFastVLine</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t h, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:abbf471bb78e19ca798b644121089aeed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast virtical line drawing.  <a href="#abbf471bb78e19ca798b644121089aeed">More...</a><br /></td></tr>
<tr class="separator:abbf471bb78e19ca798b644121089aeed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae425260d907faa87a1b8e336f24ba54c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ae425260d907faa87a1b8e336f24ba54c">tft_drawFastHLine</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t <a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a>, int16_t <a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a>, int16_t w, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:ae425260d907faa87a1b8e336f24ba54c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast virtical line drawing.  <a href="#ae425260d907faa87a1b8e336f24ba54c">More...</a><br /></td></tr>
<tr class="separator:ae425260d907faa87a1b8e336f24ba54c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cef55bef133e9918955b4d2a53cf230"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a7cef55bef133e9918955b4d2a53cf230">tft_drawLine</a> (<a class="el" href="structwindow.html">window</a> *win, int16_t x0, int16_t y0, int16_t x1, int16_t y1, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:a7cef55bef133e9918955b4d2a53cf230"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw line From my blit test code testit.c 1984 - 1985 Mike Gore.  <a href="#a7cef55bef133e9918955b4d2a53cf230">More...</a><br /></td></tr>
<tr class="separator:a7cef55bef133e9918955b4d2a53cf230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade9ab635e91789982bc86674b61611be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ade9ab635e91789982bc86674b61611be">tft_Bezier2</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> S, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> C, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> T, int steps, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:ade9ab635e91789982bc86674b61611be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw lines between points along Quadratic Bézier curve Quadratic Bézier with respect to t, see <a href="https://en.wikipedia.org/wiki/B">https://en.wikipedia.org/wiki/B</a>ézier_curve B(t) = (1-t)*(1-t)*S + 2*(1-t)*t*C + t*t*T, 0 &lt;= t &lt;= 1.  <a href="#ade9ab635e91789982bc86674b61611be">More...</a><br /></td></tr>
<tr class="separator:ade9ab635e91789982bc86674b61611be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab70455710ab3ff401ead3f87c2e103fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ab70455710ab3ff401ead3f87c2e103fc">tft_Bezier3</a> (<a class="el" href="structwindow.html">window</a> *win, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> S, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> C1, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> C2, <a class="el" href="structp2__int16__t.html">p2_int16_t</a> T, int steps, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> color)</td></tr>
<tr class="memdesc:ab70455710ab3ff401ead3f87c2e103fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw lines between points along Cubic Bézier curve Quadratic Bézier with respect to t, see <a href="https://en.wikipedia.org/wiki/B">https://en.wikipedia.org/wiki/B</a>ézier_curve B(t) = (1-t)(1-t)*(1-t)*S + 3*(1-t)(1-t)*t*C1 + 3(1-t)*t*t*C2 + t*t*t*T, 0 &lt;= t &lt;= 1.  <a href="#ab70455710ab3ff401ead3f87c2e103fc">More...</a><br /></td></tr>
<tr class="separator:ab70455710ab3ff401ead3f87c2e103fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e2f1c5c213183804492d12ab89a1b43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a9e2f1c5c213183804492d12ab89a1b43">tft_cleareol</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="memdesc:a9e2f1c5c213183804492d12ab89a1b43"><td class="mdescLeft">&#160;</td><td class="mdescRight"><h1>Character and String functions </h1>
 <a href="#a9e2f1c5c213183804492d12ab89a1b43">More...</a><br /></td></tr>
<tr class="separator:a9e2f1c5c213183804492d12ab89a1b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2312256c9579261cfa1ed62c4e82410"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ab2312256c9579261cfa1ed62c4e82410">tft_clearline</a> (<a class="el" href="structwindow.html">window</a> *win)</td></tr>
<tr class="memdesc:ab2312256c9579261cfa1ed62c4e82410"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear display text line.  <a href="#ab2312256c9579261cfa1ed62c4e82410">More...</a><br /></td></tr>
<tr class="separator:ab2312256c9579261cfa1ed62c4e82410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaf6907405d24bf529df5590f450d3cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#afaf6907405d24bf529df5590f450d3cd">tft_putch</a> (<a class="el" href="structwindow.html">window</a> *win, int c)</td></tr>
<tr class="memdesc:afaf6907405d24bf529df5590f450d3cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">put character in current winoow  <a href="#afaf6907405d24bf529df5590f450d3cd">More...</a><br /></td></tr>
<tr class="separator:afaf6907405d24bf529df5590f450d3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a460d9cc0fd386002d9485f2a0ed585d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwindow.html">window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#a460d9cc0fd386002d9485f2a0ed585d8">tftwin</a></td></tr>
<tr class="separator:a460d9cc0fd386002d9485f2a0ed585d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa55d6901951c7fe057e8d32477b5e122"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structwindow.html">window</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#aa55d6901951c7fe057e8d32477b5e122">tft</a> = &amp;<a class="el" href="ili9341__hal_8c.html#a460d9cc0fd386002d9485f2a0ed585d8">tftwin</a></td></tr>
<tr class="separator:aa55d6901951c7fe057e8d32477b5e122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23606278a84f872e936d3a005f528d6"><td class="memItemLeft" >struct {</td></tr>
<tr class="memitem:a30bcfd28723a646c86fb7fa79d23d334"><td class="memItemLeft" >&#160;&#160;&#160;int16_t&#160;&#160;&#160;<a class="el" href="ili9341_8c.html#a12ad102c2d1e7e119fdc040b0c922c7e">x</a> [<a class="el" href="ili9341_8c.html#a71d0761bc813dbcb85353d2508693493">XYSTACK</a>+2]</td></tr>
<tr class="separator:a30bcfd28723a646c86fb7fa79d23d334"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae70d3273bc0c0d948cd7e0686b04932e"><td class="memItemLeft" >&#160;&#160;&#160;int16_t&#160;&#160;&#160;<a class="el" href="ili9341_8c.html#afe490938209e0b6b15224c05a01f0b40">y</a> [<a class="el" href="ili9341_8c.html#a71d0761bc813dbcb85353d2508693493">XYSTACK</a>+2]</td></tr>
<tr class="separator:ae70d3273bc0c0d948cd7e0686b04932e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a731938a4fccdd06759ad48bb717902ba"><td class="memItemLeft" >&#160;&#160;&#160;int&#160;&#160;&#160;<a class="el" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a></td></tr>
<tr class="separator:a731938a4fccdd06759ad48bb717902ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23606278a84f872e936d3a005f528d6"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ili9341_8c.html#ae23606278a84f872e936d3a005f528d6">xy</a></td></tr>
<tr class="separator:ae23606278a84f872e936d3a005f528d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>ili9341 driver inspired by Adafruit ili9341 code All code in this file has been rewritten by Mike Gore </p>
<dl class="section user"><dt>Copyright &copy; 2015 Mike Gore, GPL License</dt><dd></dd></dl>
<dl class="section user"><dt>You are free to use this code under the terms of GPL</dt><dd>please retain a copy of this notice in any code you use it in.</dd></dl>
<dl class="section user"><dt>Copyright &copy; 2013 Adafruit Industries. All rights reserved.</dt><dd></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://github.com/adafruit/Adafruit-GFX-Library">https://github.com/adafruit/Adafruit-GFX-Library</a></dd></dl>
<dl class="section user"><dt>Line drawing function CERTS</dt><dd></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341">https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341</a></dd></dl>
<p>This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. </p>

<p>Definition in file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a4ae7ac40c6ea3d1e5a457adf60a6bf5b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HSPI_PIX&#160;&#160;&#160;((<a class="el" href="hspi_8h.html#a1eaecab4a7e4f328f38ce57d4d3012d1">HSPI_FIFO_SIZE</a>-2)/3)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read Rectangle and return 16bit color array in 565 RGB format We clip the window to the current view Note: TFT Chip Select must be asserted for each block read As soon as chip select goes high the read aborts! We break up the data into chunks with a Memory Read, followed by Memory Read Continue So we use Memory Read and Memory Read Continue. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*color</td><td>pixel array in 565 format Number of pixels FIFO can hold We also include the 2 byte Memory Read / Continue opcodes; </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00835">835</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae8936d2dc66f704b60c78e65dc0d7244"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAXVEC&#160;&#160;&#160;24</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>find beginning and end of all non-matching color transitions in a line FIXME: not tested yet </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position to start scan </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y line to scan </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*vec</td><td>start and end of transition offsets </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>maximum size of transitions to save </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>match color @ return true count of saved transitions </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00509">509</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>.</p>

</div>
</div>
<a class="anchor" id="a3bc3999315888a41dcf1417cdae450e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USE_OPTIMIZATION_DRAWLINE</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a71d0761bc813dbcb85353d2508693493"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XYSTACK&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>X,Y point stack. </p>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00369">369</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00380">tft_push_xy()</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aecac98906474a88c3017fc3761328506"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_565toRGB </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><h1>Color conversions </h1>
</p>
<p>====================================Convert 16bit colr into 8-bit (each) R,G,B ILI9341 defaults to MSB/LSB data so we have to reverse it </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>16bit color </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*r</td><td>red data </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*b</td><td>blue data </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">*g</td><td>green data </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01033">1033</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4f8e68425197b38f3c9889b64b24f362"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> tft_abs_window </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>============================================================= </p>
<p>==================================== </p><h1>window limits </h1>
<p>Set the ili9341 working window by absolute position and size Note: Function clips x,y,w,y </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Starting X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Starting Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(w * h) after clipping </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00101">101</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00140">tft_rel_window()</a>.</p>

</div>
</div>
<a class="anchor" id="ade9ab635e91789982bc86674b61611be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_Bezier2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>C</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>T</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>steps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw lines between points along Quadratic Bézier curve Quadratic Bézier with respect to t, see <a href="https://en.wikipedia.org/wiki/B">https://en.wikipedia.org/wiki/B</a>ézier_curve B(t) = (1-t)*(1-t)*S + 2*(1-t)*t*C + t*t*T, 0 &lt;= t &lt;= 1. </p>
<p>==================================== </p><h1>Interpolation functions </h1>
<p>The path traced by the function B(t), given points S, C, and T, S = initial points C = control points T = target points</p>
<p>Derivative of the Bézier curve with respect to t B'(t) = 2*(1-t)*(C-S) + 2*t*(T-C)</p>
<p>Second derivative of the Bézier curve with respect to t is B"(t) = 2*(T-2*C+S)</p>
<p>As t increases from 0 to 1, the curve departs from S in the direction of C, then bends to arrive at T from the direction of C. The tangents to the curve at S and T intersect at C.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>Window Structure of active window </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">S</td><td>Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">C</td><td>Control </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">T</td><td>Target </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>line segments along curve (1..N) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Line color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>count of line segments </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01474">1474</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab70455710ab3ff401ead3f87c2e103fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_Bezier3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>C1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>C2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structp2__int16__t.html">p2_int16_t</a>&#160;</td>
          <td class="paramname"><em>T</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>steps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw lines between points along Cubic Bézier curve Quadratic Bézier with respect to t, see <a href="https://en.wikipedia.org/wiki/B">https://en.wikipedia.org/wiki/B</a>ézier_curve B(t) = (1-t)(1-t)*(1-t)*S + 3*(1-t)(1-t)*t*C1 + 3(1-t)*t*t*C2 + t*t*t*T, 0 &lt;= t &lt;= 1. </p>
<p>The path traced by the function B(t), given points S, C, and T, S = initial points C1 = control point 1 C2 = control point 2 T = target points</p>
<p>Derivative of the Bézier curve with respect to t B'(t) = 3(1-t)*(1-t)*(C1-S) + 6*(1-t)*t*(C2-C1) + 3*t*t*(T-C2)</p>
<p>Second derivative of the Bézier curve with respect to t is B"(t) = 6*(1-t)*(C2-2*C1+S) + 6*t*(T-2*C2+C1)</p>
<p>The curve starts at S and moves toward C1 and on to T from the direction of C2. Points C1 and C2 provide directional information and the distance between them determines "how far" and "how fast" the curve moves towards C1 before turning towards C2.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>Window Structure of active window </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">S</td><td>Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">C1</td><td>Control 1 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">C2</td><td>Control 2 </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">T</td><td>Target </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">steps</td><td>line segments along curve (1..N) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Line color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>count of line segments </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01545">1545</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9aedd26c42606ba58f2f0a483619f323"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_bit_blit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><h1>BLIT functions </h1>
</p>
<p>BLIT a bit array to the display </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*ptr</td><td>bit array w * h in size </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>BLITX offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>BLIT Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>BLIT Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>BLIT Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void TODO CLIP window - depends on blit array </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00234">234</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="font_8c_source.html#l00200">tft_drawChar()</a>.</p>

</div>
</div>
<a class="anchor" id="a9e2f1c5c213183804492d12ab89a1b43"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_cleareol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><h1>Character and String functions </h1>
</p>
<p>====================================Clear display to end of line </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure return: void, win-&gt;x = win-&gt;w </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01601">1601</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l01643">tft_putch()</a>, and <a class="el" href="user__main_8c_source.html#l00348">user_loop()</a>.</p>

</div>
</div>
<a class="anchor" id="ab2312256c9579261cfa1ed62c4e82410"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_clearline </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear display text line. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure return: void, win-&gt;x = 0 </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01621">1621</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="adfcd8a18cff06d92e9d9c5959a66c9dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_clip_xy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>X</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>Y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clip X,Y to fix inside specifiied window. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*X</td><td>X position in window </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*Y</td><td>Y position is window return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01114">1114</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a944393583142b4a19593eec1a743b90e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_Cmd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>cmd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transmit 8 bit command. </p>
<h1>============================================================= </h1>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cmd</td><td>display command return: void status is in data array - bytes in size </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00053">53</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00234">tft_bit_blit()</a>, <a class="el" href="ili9341_8c_source.html#l00072">tft_Cmd_Data_TX()</a>, <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>, <a class="el" href="ili9341_8c_source.html#l00627">tft_fillRectWH()</a>, <a class="el" href="ili9341_8c_source.html#l01045">tft_invertDisplay()</a>, <a class="el" href="ili9341_8c_source.html#l00952">tft_readPixel()</a>, <a class="el" href="ili9341_8c_source.html#l00837">tft_readRect()</a>, <a class="el" href="ili9341_8c_source.html#l00166">tft_readRegister()</a>, and <a class="el" href="ili9341_8c_source.html#l00745">tft_writeRect()</a>.</p>

</div>
</div>
<a class="anchor" id="a666fba3ffecff43f44c647bed2d012fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_Cmd_Data_TX </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transmit 8 bit command and optionally send data buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cmd</td><td>display command </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*data</td><td>data buffer to send after command </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bytes</td><td>data buffer size return: void status is in data array - bytes in size </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00072">72</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00101">tft_abs_window()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00057">tft_configRegister()</a>, <a class="el" href="ili9341_8c_source.html#l00717">tft_drawPixel()</a>, and <a class="el" href="ili9341_8c_source.html#l00982">tft_setRotation()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e9724741987970e9a1a866446bc3a2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> tft_Data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transmit 8 bit data amd read 8bit data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>display command return: read result </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00061">61</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00166">tft_readRegister()</a>.</p>

</div>
</div>
<a class="anchor" id="ae425260d907faa87a1b8e336f24ba54c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_drawFastHLine </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fast virtical line drawing. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width of line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01329">1329</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341__adafruit_8c_source.html#l00363">tft_drawRect()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00384">tft_drawRoundRect()</a>, <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>, and <a class="el" href="ili9341__adafruit_8c_source.html#l00458">tft_fillTriangle()</a>.</p>

</div>
</div>
<a class="anchor" id="abbf471bb78e19ca798b644121089aeed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_drawFastVLine </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fast virtical line drawing. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height of line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01314">1314</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341__adafruit_8c_source.html#l00363">tft_drawRect()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00384">tft_drawRoundRect()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00346">tft_fillCircle()</a>, and <a class="el" href="ili9341__adafruit_8c_source.html#l00302">tft_fillCircleHelper()</a>.</p>

</div>
</div>
<a class="anchor" id="a7cef55bef133e9918955b4d2a53cf230"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_drawLine </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Draw line From my blit test code testit.c 1984 - 1985 Mike Gore. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x0</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y0</td><td>Y Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x1</td><td>X End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y1</td><td>Y End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>color to set </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void Draw line Draw line from CERTS <a href="https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341">https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x0</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y0</td><td>Y Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x1</td><td>X End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y1</td><td>Y End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>color to set </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01389">1389</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l01474">tft_Bezier2()</a>, <a class="el" href="ili9341_8c_source.html#l01545">tft_Bezier3()</a>, <a class="el" href="ili9341_8c_source.html#l01329">tft_drawFastHLine()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00437">tft_drawTriangle()</a>, and <a class="el" href="wire_8c_source.html#l00060">wire_draw()</a>.</p>

</div>
</div>
<a class="anchor" id="a675036a93108cdafe0b1060ba024c485"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_drawPixel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><h1>Pixel functions </h1>
</p>
<p>====================================Draw one pixel set to color in 16bit 565 RGB format We clip the window to the current view </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>color to set </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00717">717</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00234">tft_bit_blit()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00201">tft_drawCircle()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00248">tft_drawCircleHelper()</a>, <a class="el" href="ili9341_8c_source.html#l01329">tft_drawFastHLine()</a>, <a class="el" href="ili9341_8c_source.html#l00346">tft_flood()</a>, <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>, <a class="el" href="ili9341_8c_source.html#l00745">tft_writeRect()</a>, and <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ab93eb7f022a179fed29999a4affd2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_FillPolyLine </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00510">510</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3c9368b6d6f6388a7c7f9ed89743e47f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_fillRectWH </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Partial window Fill with color We clip the window to the current view. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Fill color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00627">627</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l01601">tft_cleareol()</a>, <a class="el" href="ili9341_8c_source.html#l01621">tft_clearline()</a>, <a class="el" href="font_8c_source.html#l00200">tft_drawChar()</a>, <a class="el" href="ili9341_8c_source.html#l01329">tft_drawFastHLine()</a>, <a class="el" href="ili9341_8c_source.html#l01314">tft_drawFastVLine()</a>, <a class="el" href="ili9341_8c_source.html#l00690">tft_fillRectXY()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00414">tft_fillRoundRect()</a>, <a class="el" href="ili9341_8c_source.html#l00334">tft_fillWin()</a>, <a class="el" href="ili9341_8c_source.html#l01643">tft_putch()</a>, and <a class="el" href="ili9341_8c_source.html#l00903">tft_Vscroll()</a>.</p>

</div>
</div>
<a class="anchor" id="a49f75769b08991ac4a56bfb2f4e1fa05"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_fillRectXY </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>xl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>yl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill rectangle with color We clip the window to the current view. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">xl</td><td>X End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">yl</td><td>Y End </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Fill color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00690">690</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l01329">tft_drawFastHLine()</a>.</p>

</div>
</div>
<a class="anchor" id="a90dda5b7ba495fcca6ab4e5259f6c6fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_fillWin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><h1>Fill functions </h1>
</p>
<p>====================================Fill window </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">color</td><td>Fill color </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00334">334</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, <a class="el" href="ili9341__hal_8c_source.html#l00178">tft_init()</a>, and <a class="el" href="ili9341_8c_source.html#l01643">tft_putch()</a>.</p>

</div>
</div>
<a class="anchor" id="a70194eb517d3ef94b34695e4599168ab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_flood </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>border</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>fill</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flood fill. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://en.wikipedia.org/wiki/Flood_fill">https://en.wikipedia.org/wiki/Flood_fill</a> This method can eat all your ram with "busy" images and could crash </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border</td><td>border color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fill</td><td>Fill color </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00346">346</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00346">tft_flood()</a>.</p>

</div>
</div>
<a class="anchor" id="a6223a118e376e361d8278428d1dac4fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_floodline </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>border</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>fill</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flood using line fill method. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://en.wikipedia.org/wiki/Flood_fill">https://en.wikipedia.org/wiki/Flood_fill</a> FIXME: not tested yet </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X position to fill from </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y position to fill from </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border</td><td>border color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fill</td><td>Fill color @ return true one success, 0 of stack overflow </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00416">416</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="aea5f4bb41e9459b03f1a0df02b01b9fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_font_fixed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Only works if font is proportional type </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01278">1278</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00348">user_loop()</a>.</p>

</div>
</div>
<a class="anchor" id="a6a3d78858315dd032ed3b31099867584"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_font_var </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set current font type to variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01288">1288</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>.</p>

</div>
</div>
<a class="anchor" id="a616f9992d5ed309e96288a7e08b87bf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_get_font_height </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get font height. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure return: font Height or zero on error </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01296">1296</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="ac276806b0f70c3a69aaefa4a7937643b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_invertDisplay </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invert the display. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>true or false </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01045">1045</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a965b65255c70e4dfcdf3c80365bb1358"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_pop_xy </td>
          <td>(</td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>point push </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y @ return true if data exists, 0 of none </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00397">397</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>.</p>

</div>
</div>
<a class="anchor" id="abeeeab813dc4bbff2e42b292748a69f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tft_push_xy </td>
          <td>(</td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>point push </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y @ return true on success, 0 of stack overflow </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00380">380</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>.</p>

</div>
</div>
<a class="anchor" id="afaf6907405d24bf529df5590f450d3cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_putch </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>put character in current winoow </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>character return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01643">1643</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="tft__printf_8c_source.html#l00034">_putc_win()</a>, and <a class="el" href="tft__printf_8c_source.html#l00040">_putc_win_len()</a>.</p>

</div>
</div>
<a class="anchor" id="a79545feceb8eca011c3f424b36035010"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> tft_readId </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read ILI9341 device ID should be 9341 This does not work for really high SPI clock speeds Make sure that when called the clock speed in reduced. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="ili9341__hal_8c.html#a14e5cdfbb744c04570df508551f77add" title="Initialize TFT. ">tft_init</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>32bit value with DIPLAY ID </dd></dl>
<p>Paramter 0 is unused See Read ID4 Command ( 0xd3 ) for a description of the parameters </p>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00206">206</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341__hal_8c_source.html#l00178">tft_init()</a>.</p>

</div>
</div>
<a class="anchor" id="ae282613acd29016b23947b0b053170b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> tft_readPixel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read one pixel and return color in 1bit 565 RGB format We clip the window to the current view Note: Read Memory must be done in a continious write/read operation Chip select can not be deactivated for the transaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X Start </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y Start </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>color in 565 format </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00952">952</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00346">tft_flood()</a>, <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>, and <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>.</p>

</div>
</div>
<a class="anchor" id="a08bf5b6422229993b5d68e48c7b39619"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_readRect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00837">837</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00533">loop()</a>, and <a class="el" href="ili9341_8c_source.html#l00903">tft_Vscroll()</a>.</p>

</div>
</div>
<a class="anchor" id="a3cbe26ff6bbd20f42551fcfa12351142"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> tft_readRegister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>parameter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>==================================== </p>
<p>====================================================================== SPIRead parameters on SPI bus ILI9341 displays For those displays that do not have the EXTC pin asserted. This undocumented command overrides the restriction for reading command parameters. Notes: SPI configurations See M:[0-3] control bits in ILI9341 documenation</p><ul>
<li>Refer to interface I and II modes. Most ILI9341 displays are using interface I, (Rather the interface II mode) <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">command</td><td>command whose parameters we want to read </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">parameter</td><td>parameter number </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>16bit value </dd></dl>
</li>
</ul>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00166">166</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00206">tft_readId()</a>.</p>

</div>
</div>
<a class="anchor" id="a26f9b4da8c98bb40a55da447874a849c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> tft_rel_window </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the ili9341 working window by relative position and size Note: Function clips x,y,w,y. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Starting X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Starting Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bytes w * h after clipping, 0 on error </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00140">140</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00234">tft_bit_blit()</a>, <a class="el" href="ili9341_8c_source.html#l00717">tft_drawPixel()</a>, <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>, <a class="el" href="ili9341_8c_source.html#l00627">tft_fillRectWH()</a>, <a class="el" href="ili9341_8c_source.html#l00952">tft_readPixel()</a>, <a class="el" href="ili9341_8c_source.html#l00837">tft_readRect()</a>, and <a class="el" href="ili9341_8c_source.html#l00745">tft_writeRect()</a>.</p>

</div>
</div>
<a class="anchor" id="aa530634bb661856089c9bc7d78f8805f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_set_font </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set current font size (per current rotation) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>font index (for array of fonts) return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01267">1267</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, and <a class="el" href="user__main_8c_source.html#l00348">user_loop()</a>.</p>

</div>
</div>
<a class="anchor" id="a2eb6ca3fa55bfe5ecf510bc4b25916fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_set_textpos </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set current window text pointer in characters (per current rotation) - overall font bounding box. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>x offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>y oofset return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01254">1254</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, and <a class="el" href="user__main_8c_source.html#l00348">user_loop()</a>.</p>

</div>
</div>
<a class="anchor" id="adaf98866e7cbd787fde096143d394699"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_setpos </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set current window text pointer in pixels (per current rotation) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>x offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>y oofset return: void </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01241">1241</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4c1271aab64c58f75e6de6471f430bbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_setRotation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set Display rotation, applies to the master window only Set hardware display rotation and memory fill option bits Update software display limits FIXME Work in progress. </p>
<ul>
<li>do we want to handle exchanging min/max values - rather then set them ? <dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
</li>
</ul>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00982">982</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, <a class="el" href="ili9341__hal_8c_source.html#l00178">tft_init()</a>, and <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>.</p>

</div>
</div>
<a class="anchor" id="aeedc758e5bf61e7ffb28d4a85de854e6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_setTextColor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>fg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>bg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>==================================== </p>
<p>Set text forground and background color </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fg</td><td>forground color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bg</td><td>background color </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01228">1228</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>.</p>

</div>
</div>
<a class="anchor" id="a98e0ecaf3fc85ced7c0b7a2a504df02f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_Vscroll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dir</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Scroll window up by dir lines We start at the top of the window and move down. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dir</td><td>direction and count TODO +/- scroll direction TODO +/- Horizontal scroll functions </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00903">903</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="font_8c_source.html#l00200">tft_drawChar()</a>.</p>

</div>
</div>
<a class="anchor" id="af543a94ab615526f81039617a49ac6e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int tft_window_clip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clip window structure to TFT limits. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 - or - count of clipped values FIXME check negitive offsets, etc </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01059">1059</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a04d77513a2a6464617b3effa276196ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int tft_window_clip_args </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t *&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>clip arguments to window limits Arguments position x,y width w and height h to be clipped </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*win</td><td>window structure we will use to clip arguments to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*x</td><td>X argument offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*y</td><td>Y argument offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*w</td><td>W argument width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*h</td><td>H argument height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void FIXME check negitive offsets, etc </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01145">1145</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00101">tft_abs_window()</a>, <a class="el" href="ili9341_8c_source.html#l00234">tft_bit_blit()</a>, and <a class="el" href="ili9341_8c_source.html#l01198">tft_window_init()</a>.</p>

</div>
</div>
<a class="anchor" id="a5a31e1132605d6a60b66c4e969b56b37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void tft_window_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize window structure we default values FIXME check x+w, y+h absolute limits against TFT limuts. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X offset to window start - absolute </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y offset to window start - absolute </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Window width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Window Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l01198">1198</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, and <a class="el" href="ili9341__hal_8c_source.html#l00178">tft_init()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e70141c8de6a4199f9fc39d8cfc758c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tft_writeRect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwindow.html">window</a> *&#160;</td>
          <td class="paramname"><em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a rectangle pixel array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">win*</td><td>window structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>X offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Y offset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Height </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*color</td><td>pixel array in 565 format </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00745">745</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="ili9341__adafruit_8c_source.html#l00184">tft_drawBitmap()</a>, and <a class="el" href="ili9341_8c_source.html#l00903">tft_Vscroll()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a4b00721003b8d35559a55c9098ff36c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ind</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00373">373</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="buffer_8c_source.html#l00134">buffer_gets()</a>, <a class="el" href="posix_8c_source.html#l01551">dirname()</a>, <a class="el" href="fatfs__tests_8c_source.html#l00101">fatfs_tests()</a>, <a class="el" href="posix_8c_source.html#l00420">fgets()</a>, <a class="el" href="web_8c_source.html#l01077">match_headers()</a>, <a class="el" href="printf_8c_source.html#l00314">p_ntoa()</a>, <a class="el" href="posix__tests_8c_source.html#l00084">posix_tests()</a>, <a class="el" href="bdffontutil_8c_source.html#l00790">ReadBdf()</a>, <a class="el" href="ili9341_8c_source.html#l01474">tft_Bezier2()</a>, <a class="el" href="ili9341_8c_source.html#l01545">tft_Bezier3()</a>, <a class="el" href="ili9341_8c_source.html#l00234">tft_bit_blit()</a>, <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>, <a class="el" href="ili9341_8c_source.html#l00627">tft_fillRectWH()</a>, <a class="el" href="ili9341_8c_source.html#l00745">tft_writeRect()</a>, and <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>.</p>

</div>
</div>
<a class="anchor" id="aa55d6901951c7fe057e8d32477b5e122"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structwindow.html">window</a>* tft = &amp;<a class="el" href="ili9341__hal_8c.html#a460d9cc0fd386002d9485f2a0ed585d8">tftwin</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00045">45</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a460d9cc0fd386002d9485f2a0ed585d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structwindow.html">window</a> tftwin</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00044">44</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

</div>
</div>
<a class="anchor" id="a12ad102c2d1e7e119fdc040b0c922c7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int16_t x[<a class="el" href="ili9341_8c.html#a71d0761bc813dbcb85353d2508693493">XYSTACK</a>+2]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00371">371</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="cordic2c_8c_source.html#l00292">asinCordic()</a>, <a class="el" href="bdffontutil_8c_source.html#l01726">bitclrxy()</a>, <a class="el" href="bdffontutil_8c_source.html#l01698">bitsetxy()</a>, <a class="el" href="flash_8c_source.html#l00166">bittestxy()</a>, <a class="el" href="cordic_8c_source.html#l00103">Circular()</a>, <a class="el" href="bdffontutil_8c_source.html#l01524">ComputeGapSize()</a>, <a class="el" href="cordic2c_8c_source.html#l00259">cordit1()</a>, <a class="el" href="bdffontutil_8c_source.html#l01240">FontAdjustFull()</a>, <a class="el" href="bdffontutil_8c_source.html#l01325">FontAdjustSmall()</a>, <a class="el" href="bdffontutil_8c_source.html#l01753">FontPreview()</a>, <a class="el" href="bdffontutil_8c_source.html#l01836">FontPreviewFull()</a>, <a class="el" href="bdffontutil_8c_source.html#l01938">FontPreviewProportional()</a>, <a class="el" href="user__main_8c_source.html#l00533">loop()</a>, <a class="el" href="earth2wireframe_8c_source.html#l00077">main()</a>, <a class="el" href="bdffontutil_8c_source.html#l00790">ReadBdf()</a>, <a class="el" href="cordic_8c_source.html#l00265">rotate()</a>, <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, <a class="el" href="ili9341_8c_source.html#l01114">tft_clip_xy()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00201">tft_drawCircle()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00248">tft_drawCircleHelper()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00302">tft_fillCircleHelper()</a>, <a class="el" href="ili9341_8c_source.html#l00510">tft_FillPolyLine()</a>, <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>, <a class="el" href="ili9341_8c_source.html#l00380">tft_push_xy()</a>, <a class="el" href="ili9341_8c_source.html#l01241">tft_setpos()</a>, <a class="el" href="ili9341_8c_source.html#l01198">tft_window_init()</a>, <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>, and <a class="el" href="bdffontutil_8c_source.html#l00721">WriteCharacterBits()</a>.</p>

</div>
</div>
<a class="anchor" id="ae23606278a84f872e936d3a005f528d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct { ... }   xy</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="ili9341_8c_source.html#l00416">tft_floodline()</a>, <a class="el" href="ili9341_8c_source.html#l00397">tft_pop_xy()</a>, and <a class="el" href="ili9341_8c_source.html#l00380">tft_push_xy()</a>.</p>

</div>
</div>
<a class="anchor" id="afe490938209e0b6b15224c05a01f0b40"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int16_t y[<a class="el" href="ili9341_8c.html#a71d0761bc813dbcb85353d2508693493">XYSTACK</a>+2]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="ili9341_8c_source.html#l00372">372</a> of file <a class="el" href="ili9341_8c_source.html">ili9341.c</a>.</p>

<p>Referenced by <a class="el" href="cordic2c_8c_source.html#l00292">asinCordic()</a>, <a class="el" href="cordic_8c_source.html#l00103">Circular()</a>, <a class="el" href="bdffontutil_8c_source.html#l01524">ComputeGapSize()</a>, <a class="el" href="cordic2c_8c_source.html#l00259">cordit1()</a>, <a class="el" href="bdffontutil_8c_source.html#l01240">FontAdjustFull()</a>, <a class="el" href="bdffontutil_8c_source.html#l01325">FontAdjustSmall()</a>, <a class="el" href="bdffontutil_8c_source.html#l01753">FontPreview()</a>, <a class="el" href="bdffontutil_8c_source.html#l01836">FontPreviewFull()</a>, <a class="el" href="bdffontutil_8c_source.html#l01938">FontPreviewProportional()</a>, <a class="el" href="user__main_8c_source.html#l00533">loop()</a>, <a class="el" href="earth2wireframe_8c_source.html#l00077">main()</a>, <a class="el" href="cordic_8c_source.html#l00265">rotate()</a>, <a class="el" href="user__main_8c_source.html#l00783">test_types()</a>, <a class="el" href="ili9341_8c_source.html#l01114">tft_clip_xy()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00201">tft_drawCircle()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00248">tft_drawCircleHelper()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00302">tft_fillCircleHelper()</a>, <a class="el" href="ili9341__adafruit_8c_source.html#l00458">tft_fillTriangle()</a>, <a class="el" href="ili9341_8c_source.html#l00380">tft_push_xy()</a>, <a class="el" href="ili9341_8c_source.html#l01241">tft_setpos()</a>, <a class="el" href="ili9341_8c_source.html#l01198">tft_window_init()</a>, <a class="el" href="user__main_8c_source.html#l00631">user_tests()</a>, and <a class="el" href="bdffontutil_8c_source.html#l00721">WriteCharacterBits()</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 31 2018 21:22:16 for ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
